package com.huluobo.kotlinim1907a.base

import android.app.ProgressDialog
import android.content.Context
import android.os.Bundle
import android.os.Message
import android.os.PersistableBundle
import android.view.inputmethod.InputMethodManager
import androidx.appcompat.app.AppCompatActivity

/**
 * Created by lc on 2022/1/11.
 * git中红色的文件代表没有add到git中,需要add才能把它加入到仓库
 * 蓝色的文件代表与远程服务器不相同,有更改的地方会有蓝色的提示
 * 绿色的文件代表在远程服务器中没有,新增文件
 * 白色的文件代表与远程服务器中已经进行过同步,相符
 *
 * 作用:封装公共方法和功能,减少代码量,有利于项目的扩展
 */
abstract class BaseActivity : AppCompatActivity() {

    private val progressDialog by lazy {
        ProgressDialog(this)
    }

    //获取系统输入管理器
    private val inputMethodManager by lazy {
        getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    }

    //隐藏软键盘,currentFocus当前屏幕的焦点
    fun hideSoftKeyboard() {
        inputMethodManager.hideSoftInputFromWindow(currentFocus?.windowToken, 0)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(getLayoutResId())
        init()
    }

    open fun init() {
        //初始化一些公共功能,比如摇一摇,侧边滑动返回,子类可以进行重写,完成自己的初始化工作
    }

    abstract fun getLayoutResId(): Int

    fun showProgress(message: String) {
        progressDialog.setMessage(message)
        progressDialog.show()
    }

    fun dismissProgress() {
        progressDialog.dismiss()
    }
}